﻿
// XerpDlg.h : 头文件
//

#pragma once
#include "afxwin.h"
#include "afxcmn.h"
#include "GlobalDef.h"


class CXerpDlgAutoProxy;

// 利用一个结构体保存每个控件与原窗口的比值
typedef struct Rect
{
public:
	int Id;
	double scale[4];
	Rect()
	{
		Id			= -2;
		scale[0]	= 0;		// left
		scale[1]	= 0;		// right
		scale[2]	= 0;		// top
		scale[3]	= 0;		// bottom
	}
	Rect(const Rect& c)
	{
		*this=c;
	}
}control;

// CXerpDlg 对话框
class CXerpDlg : public CDialogEx
{
	DECLARE_DYNAMIC(CXerpDlg);
	friend class CXerpDlgAutoProxy;

// 构造
public:
	CXerpDlg(CWnd* pParent = NULL);	// 标准构造函数
	virtual ~CXerpDlg();

// 对话框数据
	enum { IDD = IDD_Xerp_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持


// 实现
protected:
	CXerpDlgAutoProxy* m_pAutoProxy;
	HICON m_hIcon;
    CRect m_rect;								// 用来保存对话框当前的客户区
	control m_control[6];						// 创建结构体，main win有6个控件要缩放
	BOOL CanExit();

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnClose();
	virtual void OnOK();
	virtual void OnCancel();
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnTvnSelchangedTreeFunc(NMHDR *pNMHDR, LRESULT *pResult);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	CStatusBar m_bar;
	afx_msg void LoadTree(CString treeFile);
	CTreeCtrl m_Tree;
	afx_msg void OnTvnGetInfoTipTreeFunc(NMHDR *pNMHDR, LRESULT *pResult);
	afx_msg void OnNMDblclkTreeFunc(NMHDR *pNMHDR, LRESULT *pResult);
	afx_msg void MyExpandTree(HTREEITEM hTreeItem);
	afx_msg void ShowChildDlg(CDialogEx *m_InnerDlg);
	CDialogEx *m_CurrentDlg;
};
